#include "user_extern.h"

static uint8_t selidx = 0;

/*********************************************************************
 *  名称： win12_setting_time_alarm_display
 *  功能： 闹钟配置 显示接口
 *  参数： void
 *  返回值：win_ret 窗口显示状态
 ********************************************************************/
uint8_t win12_setting_time_alarm_display(void)
{
    char alarm_en[4] = {0};
    uint8_t win_ret = WINDOWS_STATUS_DIS_ONLY;

    ui.draw_sys_title(const_setting_time);
    oled.show_number(0, 14, mtime.g_alarm[0].tm_hour, 2, STR_SIZE_32, (selidx == 0) ? 0 : 1);
    oled.show_string(30, 14, T(":"), STR_SIZE_32, 1);
    oled.show_number(40, 14, mtime.g_alarm[0].tm_min, 2, STR_SIZE_32, (selidx == 1) ? 0 : 1);

    if (Dsystem.sys_alarm_en == 0)
    {
        strcpy(alarm_en, const_off);
    }
    else
    {
        strcpy(alarm_en, const_on);
    }
    oled.show_string(POSITION_RIGHT(alarm_en, STR_SIZE_16), 48, T(alarm_en), STR_SIZE_16, (selidx == 2) ? 0 : 1);
    return win_ret;
}

/*********************************************************************
 *  名称： win12_setting_time_alarm_btn_select
 *  功能： 闹钟配置 界面 选择按钮触发，切换下一个可选项
 *  参数： void
 *  返回值：0
 ********************************************************************/
uint8_t win12_setting_time_alarm_btn_select(void *arg)
{
    selidx++;
    if (selidx > 2)
    {
        selidx = 0;
    }
    return WINDOWS_STATUS_DIS_ONLY;
}

/*********************************************************************
 *  名称： win12_setting_time_alarm_btn_enter
 *  功能： 闹钟配置 界面 确定按钮触发，配置闹钟时间/开关
 *  参数： void
 *  返回值：0
 ********************************************************************/
uint8_t win12_setting_time_alarm_btn_enter(void *arg)
{
    switch (selidx)
    {
    case 0: //H
        local_time_add_hour(&mtime.g_alarm[0]);
        break;
    case 1: //MIN
        local_time_add_min(&mtime.g_alarm[0]);
        break;
    case 2: //ONOFF
        if (Dsystem.sys_alarm_en)
        {
            Dsystem.sys_alarm_en = 0;
        }
        else
        {
            Dsystem.sys_alarm_en = 1;
        }
        break;
    }
    return WINDOWS_STATUS_DIS_ONLY;
}

/*********************************************************************
 *  名称： win12_setting_time_alarm_btn_exit
 *  功能： 闹钟配置 界面 退出按钮触发，保存配置，返回上一页
 *  参数： void
 *  返回值：WINDOWS_STATUS_INIT 下一次显示状态
 ********************************************************************/
uint8_t win12_setting_time_alarm_btn_exit(void *arg)
{
    selidx = 0;
    flash_set_value_i8(SYSTEM_VALUE, SYS_ALARM_EN, Dsystem.sys_alarm_en);
    flash_set_value_i8(SYSTEM_VALUE, SYS_ALARM_HOU, (uint8_t)mtime.g_alarm[0].tm_hour);
    flash_set_value_i8(SYSTEM_VALUE, SYS_ALARM_MIN, (uint8_t)mtime.g_alarm[0].tm_min);

    if (Dsystem.sys_alarm_en == 1)
    {
        mtime.add_alarm();
    }
    else
    {
        mtime.delete_alarm();
    }
    Dsystem.windows_cur_id = WIN_UI_OTHERMO;
    Dsystem.windows_sub_id = WIN_SUI_SETTING_TIME;
    return WINDOWS_STATUS_INIT;
}
